import store from '@/store/index.js'
export default {
	commen: {
		baseUrl: "http://43.136.172.73/api/v1", // 服务器地址
		//baseUrl: "https://dog.ceo/api/breeds",
		data: {}, // 传递给后端的数据
		header: {
			"Content-Type": "application/json",
			"Content-Type": "application/x-www-form-urlencoded",
			'Authorization': 'sfsdf',
		}, // 请求头
		method: "", // 请求方法
		dataType: "json", // 响应数据类型
	},
	/**
	 * 发送请求的方法
	 * @param {Object} options - 请求选项
	 * @returns {Promise} - 返回一个 Promise 对象，用于处理异步请求
	 */
	request(options = {}) {
		uni.showLoading({
			title: "加载中",
		});

		// 合并选项对象和默认配置
		options.url = this.commen.baseUrl + options.url;
		options.data = options.data || this.commen.data;
		options.header = options.header || this.commen.header;
		options.method = options.method || this.commen.method;
		options.dataType = options.dataType || this.commen.dataType;

		//判断是否传入了header头的token值进行用户是佛登录的验证码
		if (options.header.token) {
			options.header.token = store.state.user.token; //拿到store里面的user的token值
			if (!options.header.token) { //如果token不存在就请先登录了
				uni.showToast({
					title: "请先登录",
					icon: "none"
				})
				return uni.navigateTo({
					url: "pages/login/login"
				})
			}
		}

		return new Promise((resolve, reject) => {
			uni.request({
				...options,

				success(res) {
					console.log(res)
					if (res.statusCode !== 200) {
						return reject();
					}

					setTimeout(function() {
						uni.hideLoading();
					}, 2000);
					//调用 uni.showLoading 显示加载中的提示框。
					//合并传入的选项 options 和默认配置 commen。创建一个 Promise 对象，内部进行请求操作。请求成功时，判断响应状态码是否为 200，若不是，则调用 reject 方法拒绝 Promise；否则，通过 setTimeout 延迟 2 秒后，调用 uni.hideLoading 关闭加载中的提示框，并提取响应结果中的 data 字段，通过 resolve 方法解析 Promise 并返回数据。
					let data = res.data.data;
					resolve(data);
				},
			});
		});
	},
};